package projeto.controller.form;

import projeto.controller.exception.FormException;
import projeto.domain.NivelUsuarioEnum;
import projeto.domain.Usuario;

public class UsuarioForm {
	
	private Integer id;
	
	private String nome;
	
	private String telefone;

	private Integer nivelId;
	
	private String senha;
	
	private String email;

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}
	
	public String getTelefone() {
		return telefone;
	}

	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}

	public Integer getNivelId() {
		return nivelId;
	}

	public void setNivelId(Integer nivelId) {
		this.nivelId = nivelId;
	}

	public String getSenha() {
		return senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public Usuario convertToUsuario() throws FormException {
		
		Usuario result = new Usuario();
		
		if( this.id != null ) {
			
			result.setId( this.id );
		}
		
		if( this.nome == null || this.nivelId == null || this.senha == null || this.telefone == null ) {
			
			throw new FormException();
		}
		
		result.setEmail( this.email );
		result.setNivel( NivelUsuarioEnum.getNivelUsuarioById( this.nivelId ) );
		result.setNome( this.nome );
		result.setSenha( this.senha );
		result.setTelefone( this.telefone );

		return result;		
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}
	
	
	public UsuarioForm(String nome, String email, Integer nivelId,
			String telefone, String senha) {
		super();
		this.nome = nome;
		this.telefone = telefone;
		this.nivelId = nivelId;
		this.senha = senha;
		this.email = email;
	}
	
	public UsuarioForm( Integer id, String nome, String email, Integer nivelId,
			String telefone, String senha) {
		super();
		this.id = id;
		this.nome = nome;
		this.telefone = telefone;
		this.nivelId = nivelId;
		this.senha = senha;
		this.email = email;
	}
	
}
